package com.sam.designpattern.command.mainborad;

/**
 * @Author: Sam
 * @Date: 2022-08-24 11:04
 * @Description: 机箱对象，本身有按钮，持有按钮对应的命令对象
 */
public class Box {

    /**
     * 启动命令
     */
    public Command openCommand;

    public void setOpenCommand(Command openCommand) {
        this.openCommand = openCommand;
    }

    /**
     * 提供给客户使用，接受并响应用户请求，触发开机按钮
     */
    public void openButtonPressed() {
        //按下按钮，执行命令
        openCommand.execute();
    }

    /**
     * 重启命令
     */
    private Command resetCommand;

    public void setResetCommand(Command resetCommand) {
        this.resetCommand = resetCommand;
    }

    /**
     * 提供给客户使用，接受并响应用户请求，触发重启按钮
     */
    public void resetButtonPressed() {
        //按下按钮，执行命令
        resetCommand.execute();
    }

}
